专利摘要:
The invention relates to a method of a digital image, said image (Ik) being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block (x) , of predetermined dimensions: Transformation (T2) of the current block into a transformed block, said block comprising coefficients, said step implementing two successive transformation sub-stages, the first substep applying to the current block, the second to the intermediate block, derived from the first substep, said intermediate block comprising coefficients, and quantization (T4) and coding (T5) of the transformed block coefficients, characterized in that - said transforming step further comprises, prior to at least one of said transformation substeps, said substep applying to a block, said block to be transformed, from the current block and the intermediate block, a preliminary us-step (T20, T23) of formation of at least two vectors in the block to be transformed, starting from sequences of adjacent pixels, respectively adjacent coefficients, a said sequence having a length equal to one of the dimensions of the block to be transformed ; and said at least one transformation substep comprises applying a first transform (LO, CO) to said at least one first vector and at least one second transform (L1, C1), distinct from the first, at least one second vector of said block.
公开号:FR3032583A1
申请号:FR1550984
申请日:2015-02-06
公开日:2016-08-12
发明作者:Pierrick Philippe
申请人:Orange SA;B Com SAS;
IPC主号:
专利说明:

[0001] TECHNICAL FIELD OF THE INVENTION 1. FIELD OF THE DISCLOSURE The field of the invention is that of signal compression, in particular of a digital image. or a sequence of digital images, divided into a block of pixels. The encoding / decoding of digital images applies in particular to images originating from at least one video sequence comprising: images coming from the same camera and succeeding one another temporally (coding / decoding of 2D type), images from different cameras oriented in different views (3D type coding / decoding), - corresponding texture and depth components (3D type coding / decoding), - etc.
[0002] The present invention applies similarly to the coding / decoding of 2D or 3D type images. The invention may notably but not exclusively apply to the video coding implemented in the current video codecs AVC (for "Advanced Video Coding" in English) and HEVC (for "High Efficiency Video Coding"). and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, Scalable AVC, Scalable HEVC, etc.), and the corresponding decoding. 2. Presentation of the Prior Art A conventional compression scheme of a digital image is considered, in which the image is divided into blocks of pixels. A current block to be coded, which constitutes an initial coding unit, is generally divided into a variable number of sub-blocks according to a predetermined cutting mode. In relation with FIG. 1, a digital image sequence Il, Il, Ik, IK is considered, with K being nonzero. An Ik image is divided into initial coding units (CTUs) according to the terminology of the HEVC standard, as specified in the document "ISO / IEC 23008-2: 2013 - High efficiency coding and International Standardization for Standardization, Part 2: High Efficiency Video Coding, published November 2013. Standard encoders typically provide regular partitioning, based on square or rectangular blocks, 3032583 2 called CU Fixed partitioning is always done from the initial unpartitioned coding unit, and the final partitioning is calculated and reported from this neutral base. partitioning allowed by the HEVC standard are presented in relation to Figure 2.
[0003] Each CU will undergo an encoding or decoding operation consisting of a sequence of operations, including, but not limited to, a prediction, a residue calculation, a transformation, a quantization, and an entropy encoding. This series of operations is known from the prior art and presented in relation with FIG. 3. The first block CTU to be processed is selected as current block b. For example, this is the first block (in lexicographic order). This block comprises NxN pixels, with N nonzero integer, for example equal to 64 according to the HEVC standard. It is assumed that there are L partitions in possible PU blocks numbered from 1 to L, and that the partitioning used on block b corresponds to partitioning number I. For example, there can be 4 possible partitions, in sub-size blocks. 4x4, 8x8, 16x16, and 32x32 according to a regular quad-type cutting mode. As previously mentioned, some PU blocks may be rectangular. During a step El, a prediction Pr of the original block b is determined. It is a prediction block constructed by known means, typically by motion compensation (block derived from a previously decoded reference image or intra prediction (block constructed from decoded pixels immediately adjacent to the current block in the image ID) The prediction information related to P is encoded in the bit stream TB or compressed file FC It is assumed here that there are K possible prediction modes ml, m2, ..., mK, with For example, the prediction mode chosen for the current block b is the mk mode, some prediction modes are associated with an Intra prediction, others with an INTER prediction, and others with an Intra type prediction. to a prediction of the MERGE type During a step E2, an original residue R is formed, by subtraction R = b-Pr from the prediction Pr of the current block b to the current block B. During a step E3, the R residue is transformed into a transformed residue block, called RT, by a DCT transform or wavelet transform, both known to those skilled in the art and in particular implemented in the JPEG / MPEG standards for the DCT and JPEG2000 for the wavelet transform.
[0004] In E4, the transformed residue RT is quantized by conventional quantization means, for example scalar or vector, into a quantized residue block RQ comprising as many coefficients as the residual block RQ contains pixels, for example Nb, with Nb integer. not bad. In a manner known in the state of the art, these coefficients are scanned in a predetermined order so as to constitute a nnonodinnational vector RQ [i], where the index i varies from 0 to Nb-1. The index i is called the frequency of the coefficient RQ [i]. Classically, these coefficients are scanned in increasing frequency order, for example along a zigzag path, which is known from the JPEG fixed image coding standard. During a step E5, the amplitude information of the coefficients of the residual block RQ is coded by entropy coding, for example according to a Huffman coding or arithmetic coding technique. By amplitude is meant here the absolute value of the coefficient. Conventionally, one can encode for each coefficient information representative of the fact that the coefficient is non-zero. Then, for each nonzero coefficient, one or more information relating to the amplitude is encoded. CA amplitudes are obtained. In general, the signs of the non-zero coefficients are simply encoded by a 0 or 1 bit, each value corresponding to a given polarity. Such coding obtains effective performances because, because of the transformation, the values of the amplitudes to be coded are for the most part zero. The previous steps E1 to E5 are repeated for the possible partitions of the current block b. For partitioning I, each of the sub-blocks CU of the current block b are treated as previously described, a type of prediction (Inter or Intra) being authorized by CU. In other words, the PU sub-blocks of a CU sub-block are all subject to the same type of prediction. For example, the coded data for each of the possible partitioning I are put into competition according to a rate-distortion criterion and the partitioning which obtains the best result according to this criterion is finally retained. The other blocks of the image I1 are treated in the same way, the same for the following images of the sequence. The transformation step plays a crucial role in such a video coding scheme: it is it that concentrates the information before the quantization operation. Thus, a set of residual pixels before encoding is shown on a small number of transformed coefficients, also called non-zero frequentials representing the same information.
[0005] 3032583 4 So instead of transmitting a large number of coefficients, only a small number will be needed to faithfully reconstruct a block of pixels. The efficiency of a transformation is commonly measured according to a criterion of energy concentration, also in the form of a coding gain: it represents, for a given bit rate, the reduction in distortion (expressed by the error mean quadratic) when coding in the transformed domain rather than in the spatial domain. We note lO-. - rans f orm the mean squared error after quantization performed in the transformed domain and 6patia / the quadratic error for quantization with the same precision in the spatial domain, i.e. the residual before transformed.
[0006] According to these notations, the coding gain is then expressed as:, 2 '-' space GT c = 2 atrans f orm Usually this gain is expressed in dB Gtc db = 10 * log10 (Gtc) The gain achieved in distortion by the use of transforms can also be retranscribed in gain in bit rate: at high bit rate the gain in dB divided by a value of 6.02 makes it possible to approach the economy in realized bit rate, expressed in bits per pixel. In image and video coding, the most used transforms are block (4x4, 8x8, etc.), linear, orthogonal or quasi-orthogonal transforms. A linear transform can be expressed in matrix form as follows. An orthogonal transform has the characteristic property that the inverse transformation matrix is the transposition of the direct transformation matrix. Thus, such a transformation has the property: At A = A At = and Where A is the matrix presenting the direct transformation and I the identity matrix and c is a numerical value. When c is 1, matrix A is orthonormal. A quasi-orthogonal matrix, not multiplied by its inverse, presents an amount close to the identity matrix by a factor.
[0007] The most used transforms are based on cosine bases. DCT is thus present in most image compression and video standards. Recently the HEVC standard has also introduced the DST (for "Discrete Sine Transform") for the coding of particular residues in the case of 4x4 blocks.
[0008] In fact, approximations of these transforms are used, the computations being performed on integers. In general, the bases of transforms are approximated to the nearest integer, on a given precision (usually 8 bits). By way of example, in relation to FIGS. 4A and 4B, the transforms used by the HEVC standard on blocks of 4x4 size are shown: These are the DCT and DST transforms. The values presented in this table are to be divided by 128 to find the quasi-orthonornal transformations. In practice, a pixel block is transformed by the following operations: X - A - (A - xt) t (1) A denotes the size transformation matrix NxN, x represents the pixels or residual pixels to be transformed (spatial domain ), X the block in the transformed domain (called frequency domain) and t the transposition operator. The block in the spatial domain is written (here in 4x4): X = X0 X4 Xi X2 X6 x10 x14 X3 X7, X5 x11 Xi5, ... 8 [x12 X9 x13 The block of pixels in the transformed domain takes the form The matrix A takes the form of a 4x4 matrix in our case, with the coefficients equal to those presented in the tables of Figures 4A and 4B. The equation presented above therefore proceeds as follows: the block x is transposed. X0 X1 X2 X3 3032583 6 - Thus the matrix A applies on the lines of the pixels - The result (A - xt) is then transposed - Then the application of the matrix A is done on this result. The combination of these operations is therefore to transform the rows and the columns.
[0009] 5 An equivalent write from a coding point of view but different from a mathematical point of view consists in performing: X = A - (A - x) t (2) In this case, the columns are first transformed . The row and column transforms may be different as described in the cited prior art. The preceding formulas can be extended to this case, for example if one wishes to operate on the columns first then on the lines: x L - (c - x) t (3) L represents the transform specific to the lines and C the transformation specific to the columns. To operate on the lines beforehand, we write: 15 x = c - (L - xt) t (4) These last two formulas make it possible to treat also blocks of rectangular pixels, so an 8x8 column transform can operate on a 4x8 block in a first step, in a second time a 4x4 size line transform will operate on the resulting block to finally get the transformed coefficients.
[0010] Thus we write in the same way as before: x L - (c - x) t (5) We thus see it, we make succeed two separate transformations, in the line-column or column-line direction. As a result, the spatial signal is decorrelated by line vectors then columns or columns and then lines. or columns.
[0011] Decorrelation is indeed an important aspect in transformation. Ensuring a good decorrelation makes it possible to obtain a good coding gain. An efficient coding transformation is thus intended to decorrelate the row and column vectors to obtain a compact signal in the frequency domain and to facilitate transmission.
[0012] The transformation operations presented above act in a separable manner by decorrelation of the line and then column or column and then line. We speak of separable transforms. As a result, they do not completely decorrelate the pixels in the spatial domain, especially the decorrelation of diagonal elements, such as x0 and x5. To allow complete decorrelation, it is possible to perform a non-separable transformation. To do this, we apply the following operator:) (> = Ansi ((6) ABS represents the non-separable transformation to be performed, advantageously chosen orthonormally or quasi-orthonormally, X> and x are respectively transformed pixels and in the spatial domain, in the form of vectors, thus for a 4x4 block they take the following form: Xo X1 x1 and .i x01 ABS is therefore of size 16 × 16 in this example and more generally of size N 2 × N 2 for a block of size In this way, a non-separable transformation A 'is capable of frontally processing all the correlations between pixels of the spatial domain, in particular the diagonal correlations, For example, in the case of a 4x4 block, the direct correlation between pixel x0 and x5, is narrowed, thus the non-separable transforms are more efficient in compression, nevertheless they have a number of disadvantages: - they are transforms of tai N2xN2, so N4 values must be stored, in comparison to the 2xN2 values required for the two matrices realizing the separable transform. This has an impact on the cost of implementing an image / video encoder / decoder for which the fast memories are expensive. Xi4 X14 -X15 Xis 3032583 8 - the transformation algorithm requires a significantly higher number of operations in order to process the increased dimension of the vector. With respect to the separable transformations, the non-separable transformations therefore require a much higher complexity, as indicated in the table of FIG. 5. In this table, there are listed the amounts of memory and operations relating to the implementations of non-separable transformations. separable (Nsep) and separable (Sep) for processing 4x4 and 8x8 blocks respectively. As can be seen, non-separable transformations have a significant impact in ROM and many operations compared to separable transformations. In particular, in terms of operations, the complexity ratio is greater than M / 2 for a block of size MxM. Also known from the patent application published under the number US2013 / 0003828, an image coding method, which selects types of transforms to be successively applied to the rows and columns of the block according to the prediction mode chosen for this purpose. block, for example a particular intra-directional prediction mode. More precisely, this method associates a first linear transform with the lines of the current block, for example a DCT, and a second linear transform, distinct from the first, with the columns of the block transformed by the first transform. One advantage is to adapt to the fact that the set of columns and all the rows of the block do not necessarily have the same statistical properties. 3. Disadvantages of the Prior Art The disadvantages of the prior art are as follows: For a non-separable transform, the algorithmic complexity is very important. It therefore requires a very high implementation cost, or even crippling. In the case of separable transforms, they act identically for the rows, respectively the columns, in particular it is implicitly assumed that respectively the set of rows respectively of the columns share the same statistic. These are the most used transformers in current encoders because they realize a compromise between compression efficiency and coding cost. However, they do not reach the compressive performance of the non-separable transforms. 4. Objectives of the invention The invention improves the situation. The invention particularly aims to overcome these disadvantages of the prior art.
[0013] More specifically, an object of the invention is to propose a solution that improves the compression performance of a digital image encoder, without requiring a significant increase in computing and memory resources. These objectives, as well as others which will appear subsequently, are achieved by means of a coding method of a digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block, of predetermined dimensions: transforming the current block into a transformed block, said block comprising coefficients, said step implementing two sub-steps; successive steps of transformation, the first substep applying to the current block, the second to the intermediate block, resulting from the first substep, said intermediate block comprising coefficients, and quantization and coding of the coefficients of the transformed block, According to the invention, prior to at least one of said transformation substeps, said substep applying to a block, said block to be transformed, among the block nt and the intermediate block, the method comprises a preliminary step of forming at least two vectors in the block to be transformed, starting from a sequence of adjacent pixels, respectively adjacent coefficients, said sequence having a length equal to one of dimensions of the block to be transformed and said at least one sub-step comprises applying a first transform to said at least one first vector and at least one second transform, distinct from the first, to said at least one second vector of said block; .
[0014] According to the invention, at least one of the two successive steps of the separable transformation applied to the current block implements at least two distinct transforms, which are applied to distinct vectors of dimension equal to that of a line respectively. a column of the current block and formed from a sequence of neighboring elements of the current block.
[0015] Thus, the invention is based on an entirely new and inventive approach to image coding by transforming the pixels of the current block in the spatial domain into coefficients in the frequency domain, which provides a different treatment for two vectors of the current block. . Unlike the prior art which is based on the reducing assumption of a common statistic shared by the set of rows, respectively columns of the same block of the image to be encoded, the invention takes into consideration the fact that two distinct vectors of a block and the same dimension may have different statistical properties, which require a suitable linear transformation. The invention has the same algorithmic complexity as the prior art, but allows either to improve the coding performance, ie to improve the quality of the coded picture sequence for a given bitrate, to lower the coding rate for a given quality. According to an advantageous characteristic of the invention, the method further comprises a preliminary step of determining the at least two distinct transforms to be applied to said vectors, at least as a function of at least one coding parameter of the current block. An advantage of associating the choice of transforms with an encoding parameter is to adapt to the statistical variations of the block induced by the parameter in question. For example, the coding parameter considered is the size of the block or the prediction mode applied to it. For example, we rely on prior experiments to associate the coding parameter considered with at least two linear transforms. One advantage is that the encoder is not made more complex; According to another aspect of the invention, the determining step comprises reading information stored in memory, said information comprising at least the coding parameter, an identifier of the first transform, at least one identifier of the first vector of the block or intermediate block, an identifier of at least one second transform, distinct from the first and at least one second vector identifier of said block.
[0016] An advantage is that no additional information is reported in the bitstream, the data stored in memory being duplicated on the decoder side. For example, the memory is organized according to a database. An entry in the database associates with a coding parameter transformation identifiers to be applied to vector identifiers. According to one aspect of the invention, said transformation step comprises a substep of rearranging the coefficients of the transformed vectors in the intermediate block, respectively transformed. Following the application of the linear transforms to the vectors formed in the block to be transformed, the coefficients obtained are rearranged so as to form a block of coefficients. For example, the coefficients of the first transformed vector are placed on the first line or the first column of the block. This particular embodiment has the advantage of being simple and of little impact on the encoder. According to yet another aspect of the invention, the coding method further comprises the following steps of: Prediction of the values of the current block from at least one previously processed block according to a prediction mode selected from a plurality of predetermined modes, - Calculation of a residual current block by subtraction of the predicted values from the original values of the current block. According to the invention, the transformation step is applied to the residual current block and said at least one coding parameter is the prediction mode of the current block. It has been found that the prediction mode is representative of the statistical properties of a residual block alone and that it is relevant to associate a particular choice of linear transforms with a particular value of this coding parameter.
[0017] According to another aspect of the invention, the method comprises a step of encoding identification information of said at least one first transform and said at least one second transform.
[0018] The information relating to the linear transforms used is transmitted in the bitstream. An advantage of this embodiment is that it is adapted to a dynamic determination of the transforms by the encoder for each processed block.
[0019] According to yet another aspect, the first transform is applied to a first subset of the vectors of dimensions equal to that of a line, respectively to those of a column of the block and said at least one second transform is applied to a second subset of vectors of dimensions equal to that of a row of the block, respectively to those of a column of said block.
[0020] For example, two transforms lines respectively distinct columns are implemented by transformation substep. The two transforms are for example associated with a prediction mode of the current block. This embodiment achieves a compromise between the storage cost of associations between vector identifiers and transform identifiers and compression performance.
[0021] According to yet another aspect of the invention, said at least one transformation sub-step implements a distinct vector-sized transform equal to that of a row of the block, respectively to that of a column, formed in a the block. An advantage of this embodiment is that it makes it possible to finely adapt to the statistics of each vector of the block to be processed and to improve the performance of the encoder, in terms of quality and / or compression. According to another aspect of the invention, the vectors formed belong to a group comprising: - "line" vectors formed of pixels respectively coefficients of a line of the current block; - "Column" vectors formed pixels respectively coefficients of a column of the current block; vectors of length equal to that of a line of the block, formed of adjacent pixels respectively coefficients, neighbors of the current block coming from at least two rows of the block; vectors of length equal to that of a column; of the block, formed of pixels respectively adjacent coefficients of the current block from at least two columns of the block 5 The vectors formed are of the same size as the rows or columns of the current block so as not to increase the complexity of the encoder. A vector according to the invention is not necessarily formed exclusively from elements of the same line. Non-linear vectors may advantageously be formed of neighboring elements of the block coming from neighboring lines, which makes it possible to take better advantage of particular correlations between adjacent elements of the block considered, offline and columns. This case is particularly relevant for diagonal angular prediction modes, for which the blocks to be coded have diagonal patterns. The method which has just been described in its different embodiments is advantageously implemented by a coding device of a digital image according to the invention comprising the following units, which can be implemented for a current block, predetermined dimensions: - Transformation of the current block into a transformed block, said block comprising coefficients, said step implementing two successive transformation subunits, the first subunit applying to the current block, the second subunit to the block intermediate, from the first substep, said intermediate block comprising coefficients, and - Quantification and coding of the coefficients of the transformed block, Such a device is particular in that it comprises a unit for forming at least two vectors in a block, said block to be transformed, among the current block and the intermediate block, from a sequence of adjacent pixels, respectively adjacent ones, said sequence having a length equal to one of the dimensions of the block to be transformed and in that said at least one transformation subunit comprises applying a first transform at least to said first vector and at least one second transform, distinct from the first audit at least a second vector of said block. Correlatively, the invention also relates to a method of decoding a digital image from a bit stream comprising coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said method comprising the following steps, implemented for a block, called current block: decoding of the coefficients of the current block transformed from data read in the bitstream; 5 - Déquantification of the decoded coefficients; Inverse transformation of the transformed current block, said step implementing two successive sub-stages of inverse transformation, the first substep applying to the current block, the second to the intermediate block, resulting from the first substep.
[0022] The decoding method according to the invention is particular in that: said at least one reverse transformation substep applies to a block, said block to be processed, among the transformed current block and the intermediate block, it comprises application of a first inverse transform to at least a first vector of length equal to that of a line or a column of the block to be treated, and at least one second inverse transform, distinct from the first at least one second vector of said block of length equal to that of a line or a column respectively; and it furthermore comprises a substep of forming the treated block, starting from sequences of adjacent coefficients, respectively adjacent pixels, of lengths equal to that of a column, respectively of a line, issuing from the processed vectors. According to one aspect of the invention, the method further comprises a preliminary step of determining the at least two distinct transforms to be applied to said first and second vectors of the block to be processed, at least as a function of a coding parameter of the current block. . In another aspect, the determining step comprises reading in the bitstream encoded data representative of identifying information of said at least one first transform and said at least one second transform. According to yet another aspect of the invention, the determining step further comprises a preliminary substep of forming the first and second vectors in the block to be treated.
[0023] According to yet another aspect, the determining step comprises reading information in a memory, said information comprising at least the coding parameter, an identifier of the first inverse transform, at least one first vector identifier, one identifying at least one second inverse transform, distinct from the first, at least one second vector identifier of the block to be processed. According to yet another aspect of the invention, the inverse transformation step further comprises a substep, prior to said at least one substep of transforming, rearranging sequences of adjacent coefficients of the block to be processed in said first and second vectors, a said sequence having a length equal to one of the dimensions of the block to be treated. The decoding method according to the invention therefore implements the inverse operations of that of the coding method which has just been described. In particular: the inverse transformation sub-stages correspond to the inverse operations of those of transformation implemented by the coding method. They follow each other in the reverse order of the coding. the substep of forming the processed block from sequences of adjacent coefficients, respectively adjacent pixels, derived from the processed vectors. corresponds to the inverse operation of that of formation of the vectors to be transformed, implemented by the coding method; the sub-step of rearranging sequences of adjacent coefficients of the block to be processed in said first and second vectors corresponds to the inverse operation of that of rearranging the coefficients of the vectors transformed in the transformed block, implemented by the coding method .
[0024] The method which has just been described in its various embodiments is advantageously implemented by a device for decoding a digital image, from a bit stream comprising coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said device comprising the following 3032583 units, suitable for being implemented for a block of predetermined dimensions, called current block: - Decoding of the coefficients of the current block transformed from data read in the binary train; 5 - Déquantification of the decoded coefficients; Inverse transformation of the transformed current block, said unit being able to successively implement two inverse transformation subunits, the first subunit applying to the current block, the second block to the intermediate block, resulting from the first subunit; ; According to the invention, the device is particular in that it comprises: at least one inverse transformation subunit of a block, said block to be processed, among the transformed current block and the intermediate block, comprises the application at least a first inverse transform to at least a first vector of length equal to that of a line respectively column of the block to be treated and at least a second inverse transform, distinct from the first to at least a second vector of length equal to that of a line, respectively column, of said block to be treated; and in that the inverse transformation unit further comprises a reverse formation subunit of a processed block from sequences of adjacent coefficients, respectively adjacent pixels, of lengths equal to that of a column, respectively a line, from the processed vectors. The invention further relates to a signal carrying a bit stream comprising coded data of a digital image, said image being divided into blocks of pixels. Such a signal is particular in that it comprises, for a current block: coded data representing an identification information of at least a first and a second transform, distinct from each other implemented during the coding of the current block during a step of transforming the current block into a transformed block, comprising two successive sub-steps for transforming the current block into a transformed block, at least one transformation sub-step comprising applying a first transform to at least a first vector and at least a second transform, distinct from the first, to at least one second vector of a block, said block to be transformed, from the current block and the intermediate block, and coded data representative of at least the first and second vectors formed in the block to be transformed, from a sequence of adjacent pixels, respectively ad coefficients, said sequence having a length equal to one of the dimensions of the block to be transformed. The invention also relates to a computer terminal comprising a device for encoding a digital image according to the invention and a device for decoding a digital image according to the invention. The invention also relates to a computer program comprising instructions for implementing the steps of a coding method of a digital image as described above, when this program is executed by a processor.
[0025] The invention also relates to a computer program comprising instructions for implementing the steps of a method of decoding a digital image as described above, when this program is executed by a processor. These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer readable medium. The invention finally relates to recording media, readable by a processor, integrated or not integrated with the encoding device of a digital image and the decoding device of a digital image according to the invention, possibly removable, respectively memorizing a computer program implementing an encoding method and a computer program 25 implementing a decoding method, as described above. 6. List of Figures Other advantages and features of the invention will appear more clearly on reading the following description of a particular embodiment of the invention, given by way of a simple illustrative and nonlimiting example, and annexed drawings, among which: FIG. 1 (already described) schematically illustrates a sequence of digital images to be encoded and the division into blocks of these images according to the prior art; FIG. 2 (already described) presents different possibilities of partitioning a block into sub-blocks according to the prior art; FIG. 3 (already described) schematically shows the steps of a coding method of a digital image according to the prior art; FIGS. 4A and 4B (already described) show two examples of approximated frequency transforms according to the prior art; FIG. 5 (already described) presents a comparative table of complexity measurements of separable transforms and of non-separable transforms; FIG. 6 schematically shows the steps of a method of coding a digital image according to one embodiment of the invention; FIG. 7A illustrates the elements of a current block; FIGS. 7B, 7C and 7D illustrate examples of formation of "line" and "column" vectors from the elements of the current block of FIG. 7A, according to the invention; Fig. 8A shows a first example of estimating pixel-level energy values of a current block, and Fig. 8B shows homogeneous regions determined in the block from the estimated energy levels; Fig. 9A shows a second example of estimating energy values at the pixels of a current block and Fig. 9B shows homogeneous regions determined in the block from the estimated energy levels; FIG. 10 details the steps of vector formation and vector transformation formed according to a second embodiment of the invention; FIG. 11 shows the compression gains obtained by the coding method according to this second embodiment with respect to the prior art; FIG. 12 details the steps of vector formation and vector transformation formed according to a third embodiment of the invention; FIG. 13 shows the compression gains obtained by the coding method according to this third embodiment with respect to the prior art; FIG. 14 schematically shows the steps of a method of decoding a digital image according to one embodiment of the invention; and FIG. 15 shows an example of a simplified structure of a coding device of a digital image and a decoding device of a digital image according to one embodiment of the invention. DESCRIPTION OF A PARTICULAR EMBODIMENT OF THE INVENTION The general principle of the invention rests on the application of distinct transforms to different vectors of dimension equal to that of a line or a column, respectively. a block 10 to code. We consider an original video consisting of a sequence of M images II., 12, ... IM, with M nonzero integer, such as that presented in relation to Figure 1. The images are encoded by an encoder, the data encoded are inserted a bit stream TB transmitted to a decoder via a communication network, or a compressed file FC, intended to be stored on a hard disk for example. The decoder extracts the coded data, then received and decoded by a decoder in a predefined order known from the encoder and the decoder, for example in the temporal order II., Then 12, ..., then IM, this order being able to differ according to the embodiment. Referring to Figure 6, the steps of a coding method 20 according to one embodiment of the invention are now considered. During a step TO, one selects a block to be processed, called current block x. For example, it is a block CU, square or rectangular, obtained by partitioning a block CTU. In the following, we consider that this block x has for dimensions, a height H and a width W, non-zero integers. By way of illustrative example, the particular case of a block WxH = 4X4 is considered.
[0026] A transformation step T2 is considered in which a transformation is applied to the current block x. The transformation step T2 of the current block x is separable and implemented according to two linear transformation substeps: a first linear transformation sub-step T21 applied to vectors VI0 to HIV-1 of the block x, of dimension W, intended to provide an intermediate block XI including WxH coefficients; A second linear transformation sub-step T24 applied to vectors Vc0 to VcW-1 of block XI, of dimension H, intended to supply the transformed X block. It will be noted that, according to the invention, the first substep could equally well apply to vectors Vc0 to VcW-1 of block x and the second substep to vectors VI0 to HIV-1 of block 5 xl. It is understood that to process rectangular blocks, transforms of different sizes are made to act on the rows and columns. According to the invention, at least one of the two transforming sub-steps T21, T24 is implemented from at least two distinct linear transforms, one of which applies to at least a first vector of dimension equal to that of a line of the block and formed in the block of pixels x or in the intermediate block of coefficients XI and the other to at least a second vector of dimension equal to that of a line of the block and formed in this same block . At the end of the sub-step (s) implementing two distinct linear transformants, transformed vectors are obtained whose coefficients are rearranged in a block XI, X of dimension M × N at T22, T25. In this regard, it should be noted that there are different ways of rearranging the coefficients in a block and that the one used by the encoder must be known to the decoder. For this purpose, information representative of a mode of rearrangement of these coefficients may be coded and transmitted to the decoder in the bit stream.
[0027] Alternatively, predetermined rearrangement rules will be shared by the encoder and the decoder. Thus, the transformation T2 produces a block X comprising transformed coefficients, ready to be traversed by a scanning order at T3, quantized at T4, and coded at T5. It should be noted that the steps T3 and T4 can be reversed.
[0028] At the end of the processing of the current block x, T6 is tested whether the current block x is the last block to be processed by the coding unit, taking into account the coding run order defined above. If yes, the coding unit has finished processing and the encoded data is inserted into a TB bit stream. If no, the next step is the step of selecting the next block TO. This block becomes the current block to be processed, and the next step is the step T1 of determining the transforms to be applied to the current block, already described. The TB bit stream can then be transmitted to a decoder.
[0029] Different Embodiments of T1 Transformation Determination and T2 Transformation Steps, Particularly T20, T23 Vector Formation Sub-Steps, T21, T24 Transform Application to Formed Vectors, and Arrangement T22, T25 transformed coefficients in a block, will now be detailed.
[0030] According to a first embodiment of the invention, the at least two transforms are implemented during the first transformation sub-step T21. For example, it is assumed that the first substep T21 implements transforms on vectors of dimension equal to that of a line of the current block x. and that the second substep T24 implements at least one transform on vectors of dimensions equal to that of a column and formed from the elements of the intermediate block X1. In this case, the method implements a preliminary step T20 for forming vectors Vlo Vlo VIFi_i of length W from the pixels of the current block x. Advantageously, these vectors are formed in such a way that each element of the current block is used in a single vector.
[0031] In connection with FIG. 7A, an example is a current block x of size 4x4. It has 16 coefficients x0 to x15. In relation to FIG. 7B, there is shown a first example of vectors VI0 to V13 formed from the lines of the block x. A vector Vlh of this type corresponds to the line number h of the current block x.
[0032] In relation to FIG. 7D, a second example of vectors V'I0 to V'13 formed from 4 adjacent two by two elements of block x is presented. These elements are not all from the same line. For example, the vector VI'0 comprises three consecutive elements x0, x1, x2 of the first line of the block and 1 element x4 of the second row of the block, neighbor with the element x0 of the first line.
[0033] It is understood that this type of vector of dimension equal to that of a line can be advantageously used to follow a texture discontinuity present in the block and better exploit the correlation between the elements of the vector. The coding method according to the invention then implements a step T2 for determining at least two distinct linear transforms LO, L1 to be applied to the VIO vectors to HIV-1 formed, at least a first LO transform to be applied to at least one vector Vlhl formed and at least one second transform L1 to be applied to at least one other vector V1h2, with h1, h2 integers between 0 and H-1 and h1 # h2. The differentiated transforms may be of the DCT or DST type or any other linear transform effective for coding. It is thus possible to use optimal transformations for decorrelation, namely KLT (for "Karhunen-Loeve Transform", in English), or optimized according to a distortion flow criterion as presented in the article by Sezer et al, entitled "Robust learning". of 2D separable transforms for next generation video coding ", published in the proceedings of the DCC conference (for" Data Compression Conference "in English) in 2011.
[0034] Advantageously, the at least two linear transformations are determined as a function of at least one coding parameter of the current block, such as, for example, the size of the block, or the INTRA prediction mode chosen. For example, previously conducted experiments offline have made it possible to determine at least two linear transformations adapted to a particular INTRA prediction mode and to store the association obtained in memory. Advantageously, identifiers of linear transforms associated with a coding parameter value are stored in a memory of the encoder. This is for example a database BD1 which comprises inputs associating with an encoding parameter, such as for example the INTRA prediction mode previously mentioned, an identifier of the first transform, at least one identifier or index vector of the block or intermediate block to which apply the first transform, and an identifier of at least a second transform, distinct from the first and at least one identifier or index of second vector of said block to which to apply the second transform. In relation to FIG. 8A, average energy values estimated per pixel are presented in residual blocks of size 8 × 8, resulting from a given INTRA prediction mode, in this case the prediction mode number 26 according to the standard. HEVC. Such an estimate is made offline. It is found that the energy per pixel has a horizontal pattern in strips that would justify cutting into two (or more) separate regions.
[0035] In relation to FIG. 8B, two regions R 1, R 2 are shown: the first region R 1 consists of the first three lines which have a constant pattern; the second region R2 consists of the last 5 lines which have a less constant profile, because of the more pronounced discontinuity on the first column.
[0036] Advantageously, two transforms LI 1, L 2 have been determined, one applying to the line vectors of the region R 1 and the other to the line vectors of the region R 2. Thus according to this prediction mode, the coder applies a partition in two "line" transforms, each sharing a region.
[0037] For the RI region, which is fairly homogeneous, a DCT-type transform, or a KLT-defined transformation, was chosen. The DCT may be considered appropriate because it is ideally suited for the transformation of continuous patterns. For the R2 region, a transform capable of taking into account the more pronounced discontinuity on the first column, for example DST, or a KLT-defined transformation, was chosen. The DST can be considered appropriate because it is suitable for the transformation of the patterns having a discontinuity in their beginning. For the region R2 it is noted that the average energy of the first pixel, on the left edge, has a value significantly different from that of the other pixel energies. Without memory constraint, more regions would be defined, even as many as 20 lines, and 8 transforms would be used, at the expense of greater memory space occupancy. Taking into account the memory occupation constraint led to lose slightly in efficiency for a limited performance decrease. According to the example of FIGS. 8A and 8B, an input associates with the prediction mode 26, the LO transform for the line vectors v10 to v12 and the L1 transform for the column vectors v13 to v17. In relation to FIG. 9A, the average energy per pixel obtained for a residual signal obtained by off-line pre-analysis of blocks of size 8 × 8 coming from a given coding mode, in this case the mode of prediction 19 as defined by HEVC. This prediction mode has an angle of approximately -53 ° and performs diagonal prediction from top to bottom.
[0038] The energy variations between pixels delimit three zones R'1, R'2, R'3 shown in FIG. 9B. It is necessary to cut them in order to treat them by three distinct transforms associated with the regions R'1, R'2 and R'3 and adapted to their respective statistics. In this example, it can be seen that the formed regions do not correspond to one or more lines of the block. According to the invention, it is then advantageous to form vectors of dimensions equal to that of a line, from neighboring elements that do not necessarily all belong to the same line, depending on the boundaries of the considered regions. For example, the vector V1h1 represented in FIG. 9A corresponds to the region R'1. According to a first aspect, an input of the database BD1 associates with the prediction mode 19, an identifier of the transform L'0, an identifier of the vector or vectors formed in the region R'1 and to which the transform L 'can be applied. O, an identifier of the transform L'1, an identifier of the vector or vectors formed in the region R'2 to which the transform L'2 is applied, an identifier of the transform L'3, an identifier of the vector or vectors formed in the R'3 region to which the transform is applied 3.
[0039] The coding method therefore determines how to form the vectors of dimensions equal to those of a line and determines the transforms to be applied to these vectors as a function of the prediction mode used, by reading the corresponding entry in the database BD1 . In another aspect, the coding method further calculates a correlation between the values of the residual pixels of the current block at the conclusion of the prediction according to the prediction mode INTRA number 19 and the region pattern R'1, R '. 2, R'3 which has just been presented. If there is a strong correlation between these two quantities, ie a correlation greater than an established correlation threshold, the encoder decides to use the three transforms L'O, L'1, L'2. The encoder applies the three transforms, adapted to the different zones, with transforms adapted to them. For example an adaptation in the sense of the KLT will be performed.
[0040] It signals this choice to the decoder by inserting in the bitstream an encoded information representative of a reason indicator associated with the INTRA prediction mode number 19. It will be understood that, according to this embodiment, the database BD1 potentially comprises several entries corresponding to the same coding parameter, each entry comprising a distinct pattern indicator associated with different vectors and different transforms.
[0041] On receipt of the prediction mode information and the pattern retained by the encoder, the decoder will read from its database BD2 the identifiers of the vectors to be formed in the block and the transforms to be applied thereto. It will perform inverse transformations of those performed at the encoder.
[0042] Alternatively, the linear transforms are determined dynamically by pre-analysis of the current block to be encoded. For example, this pre-analysis uses known techniques of contour analysis using a gradient estimation. Contour detection is then exploited to determine at least two regions and assign them types of transforms, according to their characteristics, for example the homogeneity of their texture.
[0043] In this case, the identifiers of the determined linear transforms and the identifiers of the vectors concerned are signaled in the bitstream and transmitted to the decoder. Alternatively this contour analysis is conducted on one or more neighboring blocks already treated and combined with a hypothesis of continuity on the current block, for example as a function of an orientation of the contour in the neighboring block, relative to the current block.
[0044] When a contour continuity decision is made, the regions of the current block are then determined from those of the neighboring block already processed. In this case, the coder signals to the decoder the neighboring block from which the regions, and therefore the vectors and transforms to be used, must be inherited, using coded information representative of an inheritance mode with respect to the neighboring block concerned. It is understood that the decoder will be required to implement the same contour analysis on the same neighboring block, once decoded, in order to deduce the vectors, transformed to use. According to an alternative embodiment of the invention, the at least two distinct linear transforms are implemented during the second transformation sub-step T31. In this case, vectors of dimension H, equal to that of the columns of the current block, are formed at T11, following the first transformation sub-step T30, from the coefficients of the intermediate block X1. W vectors Vc0 to VcW-1, of length H, are obtained. As before, several types of dimension vectors H can be formed. In relation to FIG. 7C, the vector Vcw corresponds to the column number w of the block. In relation to FIG. 7E, the vector Vc'w comprises elements of two neighboring columns.
[0045] The determination step T'2 has provided at least two distinct linear transforms CO, Cl intended to be applied to the vectors Vc0 to VcW-1 formed. The various embodiments of the VIO to HIV-1 vector formation and the Li linear transformation process presented above are transposable to the steps of forming Vc0 to VcW-1 vectors and determining linear transforms Cj, knowing that they are implemented for the intermediate block Xl. Advantageously, the principle of the invention is implemented in the two transformation sub-steps T30 and T31. In this case, the coding method implements the first step T10 for forming vectors VI0 to HIV-1 of size W from the current block x, a first step T20 for determining the transforms L0, L1 to be applied to the vectors VIO to HIV-1, the second step T11 of forming vectors Vc0 to VcW-1 of dimension H from the intermediate block XI and a second step T21 of determining the transformants CO, Cl to be applied to the vectors Vc0 to VcW-1. One advantage is to better exploit the statistical particularities of the various vectors formed for the two transformation substeps. Of course, this embodiment requires in return to store more transforms. In relation to FIG. 10, the method of coding a digital image according to a second embodiment of the invention is now presented.
[0046] According to this embodiment, we consider H transformed lines LO to LH-1 and W transformed columns CO to CW-1. In other words, a specific linear transform is applied to each vector formed in the current block, whether the vectors VI0 to HIV-1 of dimension W formed in T'20, or the vectors Vc0 to VcW-1, of dimension H, formed in T'23. As an illustrative example, the case of a 4X4 block is considered.
[0047] The signal XI converted during step T'21 is obtained by concatenation of the following operations: ## EQU1 ## [X1 x4 X15 [X1 X1 X1 = L1 X6 X17 X7 [X_Io xo X19 X110 L2 - x10 X111 [X / 12 x12I X / 131 L [X13 X / 14 - 3 x14 X / 15 Xis The Lo, L1, L2 and L3 represent the line transformations and are thus size matrices 4x4 in this embodiment, which can potentially be implemented in the form of a fast algorithm, based on butterfly decomposition as known in the literature, especially if the transforms used are DCT / DST type. The 16 transformed coefficients (X10 ... X115) are thus obtained from the 16 (xo, ... x15) pixels of the starting block x. They are rearranged in T'22 to form the block XI, for example considering that each vector Vli transformed by the linear transform Li has contributed to form the line i of the block 10 xi The column transformation applies in T'24 so XO X / 0 X / 4 X2I = L0 [X / 8 X3 X / 12 [X4 X5X15 X6 = Cl X19 X113 X121 [xx8 X16 X11] The Co, C1, C2 and C3 represent the column transformations and are therefore 4x4 size matrices in this embodiment, which can potentially be implemented in the form of a fast, butterfly-like decomposition algorithm. known in the literature, especially if the transforms used are DCT / DST type. Thus, in the embodiment on 4x4 block that has just been presented above, 8 transforms have been provisioned.
[0048] An advantage of this embodiment is to take into account the fact that each row and column individually presents statistics of its own. Compression performance is improved. In relation to FIG. 11, the gain provided by the use of multiple transforms in a concrete case, that of intra-HEVC coding, for 4x4-sized blocks is illustrated. In this context, HEVC uses a DST VII-type line and column transform for 4 × 4 blocks. This transformation has shown the best results in terms of compactness of the signal. We place ourselves in the context of an intra prediction number 18. This prediction is diagonal. To evaluate the performance of a transformation, one measures its coding gain, ie the ratio between the signal energy and the geometric mean of the transformed coefficients. In relation to the table in Figure 11, the performances obtained with the DST as used in HEVC, the DCT commonly used in image / video coding, an optimal separable transform in the KLT sense (referred to as Sep in the table), are presented. a set of 20 transforms according to the invention, optimized in the KLT sense (called mSep in the table). The KLT optimization consists in finding the row and column transformations that make it possible to obtain the best coding gain. In accordance with the prior art, the KLT transformations are obtained by taking into consideration the pixel-to-pixel correlations of the vectors to be transformed and the determination of the transformation which better decorrelates these pixels. The autocorrelation matrix of the pixels is thus determined, then a diagonalization is performed: the eigenvectors generating the decorrelation form the KLT transform. These results demonstrate increased performance using the invention or a significant gain is found compared to the methods of the prior art.
[0049] In connection with FIG. 12, the method of encoding a digital image according to a third embodiment of the invention is now presented. According to this mode, "T" line vectors are formed from pixel block x and two distinct line transforms are applied to them during the first substep T "21. The coefficients obtained at T "22 are rearranged to form an intermediate block XI," T "column" 23 "vectors are formed and two distinct column transforms are applied during the second transformation sub-step T". The converted transformers are transformed into T "to form the transformed block X. Thus, the line transformation implemented by the first substep T" differentiates the transformation for the first line from that used for the others and can express as follows, for a block x of dimension 4x4: rXio xo r10 x0 L0. [Xi 12 - 0 X2 X13 X3 [14 X4 XI51_ L1. [X5 X16 - 1 X6 X17 X7 [X18 X 1 8 X19_y X9 XIII-L1 X10 xiii X11 rx / i2 xi21 x / 131 L. [x13 14 _ 1 X14 X / 15 Xis 15 So we have only two transforms (L0 and L1) instead of 4 before. it is possible to proceed analogously, that is to say, to keep only 2 transforms to differentiate the columns (for example the first d In one embodiment, it is also possible to retain only one transformation for all the columns, or in another mode to retain the four distinct transformations as explained in the first embodiment. Thus, the impact related to the storage of the transformations is significantly reduced.
[0050] In order to illustrate the performances obtained by this third embodiment allowing a memory reduction, the coding gains obtained in the context of the 4x4 blocks are again presented for the prediction 18 of the intra mode of HEVC. We retain two distinct transformations for rows and columns. There are thus 4 transformations in total instead of 8 as presented in the first embodiment (note that 4Sep configuration). According to one variant, two distinct transformations for the rows and a single transform for the columns are retained (for the columns one thus approaches the state of the art). There are thus 3 transformations in total instead of 8 as presented in the first embodiment 10 (note that 3Sep configuration). The results are shown in the table in Figure 13. It is therefore seen that these versions, with reduced memory, make it possible to approach the results obtained by the version with 8 transformations (mSep) with half or less memory used. A significant advantage in compression over the state-of-the-art transforms is retained.
[0051] Referring to Figure 14, the steps of a decoding method according to one embodiment of the invention are now presented. It is assumed that a bit stream TB has been received by a decoding device implementing the decoding method according to the invention.
[0052] In DO, we first select as the current block C 'the first block to be processed. For example, this is the first block (in lexicographic order). This block contains MxN pixels, with M and N non-zero integers. As described for the encoding method, the block C 'considered may be a block CTU or a sub-block CU obtained by cutting the block CTU or a block or sub-block residue obtained by subtracting a prediction from the block current to the current block. During a step D1, the coded data relating to the current block C 'are read and decoded. In D2, the decoded data relating to the current block C 'are dequantized. We obtain a vector of dequantized coefficients DQ [k], with k integer between 0 and MxN -1.
[0053] During a step D3, the coefficients of the vector DQ are arranged in a transformed block X '. This is the inverse operation of the path T3 implemented by the coding method. In D4, the transforms to be applied to the current block X 'are determined during the successive inverse transformation sub-steps D51, D54. According to the invention, at least one of them employs two distinct linear transforms. It is understood that these are the inverse transforms of those applied by the coding method according to the invention. At the level of the decoder, the inverse transforms to be applied to vectors of dimension equal to that of a line or of a column may be determined in various ways, among which may be mentioned by way of example: by reading in the bit stream TB of identification information of at least a first transform and a second transform; by reading identification information of the transforms used by the encoder in a local or remote memory; Advantageously, the choice of the first and second transforms can be associated with an encoding parameter of the current block, for example its size or its prediction mode. According to one embodiment of the invention, the transforms to be applied are obtained by reading a memory, for example the input of a database BD2 associating with a coding parameter, an identifier of the first transform to minus a first vector identifier 20 of the block or intermediate block, an identifier of at least one second transform, distinct from the first to at least one second vector identifier of said block. Advantageously, during D4, it was also determined how the vectors were formed in the current block at the encoder. For example, the vector identifier corresponds to a known type of vector formed in a block of size MxN. It is understood that it is necessary for the decoder to know how to form the vectors in the same way as the encoder. Several types of column vectors or lines can be formed. In a manner similar to what has been described for the transforms to be applied, several embodiments are envisaged, among which: the decoder locally has the same vector formation rules as the encoder. These rules are for example stored in memory; Advantageously, the decoder accesses information stored in a database, comprising entries associating with a coding parameter, indications allowing the formation of H vectors of dimension W and of W vectors of dimension H in the current block. This database is duplicated at the encoder and decoder; the decoder extracts from the bitstream information representative of a type of vector formed by the encoder. This variant is particularly interesting when the type of vector formed is chosen dynamically, on the basis of a pre-analysis of the content of the current block implemented at the encoder. At the end of this step, we therefore know the number, the indices and the types of vectors associated with a linear transform identifier. In the remainder of the description, it is assumed that, at encoding, the first substep implemented at least two transforms on vectors of dimension equal to that of a line and the second substep one or more. transformed on vectors of dimension equal to that of a column. At the decoding level, the reverse operations will be conducted in an inverted order from that performed during the coding. In this exemplary embodiment, the first substep D51 of inverse transformation therefore applies to vectors of dimension equal to that of a column. During a step D50, vectors in the block X 'are formed of coefficients of length equal to that of a column of the block X'. This is the inverse operation of that of arrangement T25 of the coefficients of the vectors transformed in a block X implemented by the coding method. For example, on the encoder side, the coefficients of the transformed column vector Vcj were simply set by a linear transform CO, Cl or Cj of step T24 in column j of block X. During step D50 of the method for decoding, a vector V'cj of length equal to that of a column is formed inversely from the coefficients of column j of block X '. It is thus understood that according to this example, a column of X 'comprises the coefficients resulting from the linear transformation applied by the coding method to the associated vector vcj. In this simple case, step D50 then simply consists in forming "column" vectors V'cj from the columns of block X '.
[0054] Advantageously, step D50 relies on information relating to this rearrangement obtained during the determination step D4. For example, the rearrangement which consists in associating the column cj0 with the input of the linear transform CO-1 and the column cj1 with the input of the linear transform C1-1 is indicated by information representative of a type of 5 predetermined rearrangement or associates vector identifiers with each linear transform. Such vector identifiers advantageously include a vector type and a vector index. For example, the type of vector considered is the column type and the vector to be formed is the no j, that is to say the one that corresponds to the column j of the block.
[0055] In D51, the linear inverse transforms CO-1- C1-1 are applied to the vectors V'cj0, V'cj1 formed in D50, for example the columns cjO, cj1, in transposed form if they are orthogonal or using a fast algorithm. We obtain vectors v'cjO, v'cj1. During a step D52, the coefficients of the treated vectors v'cj0, v'cj1 are positioned to form an intermediate block X'l. For this purpose, the identification information of the vectors determined during step D4 and relating to the formation of the vectors on the encoder side is used and the reverse operation is carried out. For example, if the vectors are column vectors, the vectors credentials include a column index and the elements of the vector are placed in the corresponding column. If the vectors are not linear, the identification information identifies a type of nonlinear vector known to the decoder, whose position it knows how to position the elements in the block MxN. For example, if the identification information of the determined vectors indicates that the vector vcj formed in the encoder-side block X'l was of the type described in relation to FIG. 7E, with an index corresponding to the vector vc0, then the vectors coefficients will be placed in X'1, X'0, X'4, X'8. Before being subjected to the second inverse transformation sub-step D54, the intermediate block X'1 obtained is then implemented in a formation step D53, similar to step D50, but which forms a vector in the block X'l from the rearrangement information obtained at D4, and associates with it one of the linear transforms LO-1 and L1-1 also determined at D4. In D54, the inverse transforms are applied, in transposed form if they are orthogonal or with the aid of a fast algorithm, and produce vectors VliO, V'Ii1 of dimension 5 equal to that of a line. The operations implemented by the decoder according to the invention are of the same nature as those used by the state of the art: the complexity is therefore unchanged to perform the transformations. In D55, the vectors obtained are positioned to form the block of pixels x '. This is the inverse operation of that of formation of vectors T20 implemented in the coding method according to the invention. In D6, the block of pixels of the decoded image is reconstructed from the block x 'obtained and integrated with the ID image being decoded. If the block x 'is a residue block, it is added a prediction of the current block obtained from a previously processed reference image.
[0056] During a step D7, it is tested whether the current block is the last block to process the decoder, given the order of travel defined above. If so, the decoding process has finished processing. If no, the next step is the step of selecting the next block DO and the decoding steps D1 to D7 described above are repeated for the next selected block 20. It will be noted that the invention which has just been described can be implemented by means of software and / or hardware components. In this context, the terms "module" and "entity", used in this document, can correspond either to a software component, to a hardware component, or to a set of hardware and / or software components, capable of the function (s) described for the module or entity concerned. With reference to FIG. 15, an example of a simplified structure of a device 100 for encoding a digital image according to the invention is now presented. The device 100 implements the coding method according to the invention which has just been described in relation to FIG. 6.
[0057] For example, the device 100 comprises a processing unit 110, equipped with a processor p1, and driven by a computer program Pgl 120, stored in a memory 130 and implementing the method according to the invention. At initialization, the code instructions of the computer program Pgi 120 are for example loaded into a RAM before being executed by the processor of the processing unit 110. The processor of the processing unit 110 implements the steps of the method described above, according to the instructions of the computer program 120. In this exemplary embodiment of the invention, the device 100 comprises at least one TRANS unit transforming a current block into a transformed block X comprising a first transformation subunit TR1 of the current block into an intermediate block and a second subunit TR2 of transforming the intermediate block into the transformed block, a quantization unit QUANT of the transformed block, a coding unit COD of quantized block and INSERT unit for inserting the encoded data into the TB bit stream. According to the invention, the transformation unit comprises at least one formation subunit of at least two vectors from elements (pixels, respectively coefficients) of one of said blocks from the current block and the block. intermediate, capable of being implemented before at least one of said transformation subunits and an ARR subunit of arrangement of the coefficients obtained in a block. The device also comprises a DET unit for determining at least two distinct transforms to be applied to said vectors, at least as a function of an encoding parameter of the current block.
[0058] Advantageously, the device 100 further comprises a memory, for example a storage unit BD1 of a table comprising entries associating with an encoding parameter an identifier of the first transform with at least one vector identifier of the block or block intermediate, an identifier of at least a second transform, distinct from the first to at least one second vector identifier of said block.
[0059] These units are driven by the processor p.1 of the processing unit 110. Advantageously, the device 100 can be integrated with a user terminal TU. The device 100 is then arranged to cooperate at least with the following module of the terminal TU: A data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is transmitted. via a telecommunications network to a decoding device; For example, the decoding device 200 comprises a processing unit 210, equipped with a processor p2, and driven by a computer program Pg2 220, stored in a memory 230 and implementing the decoding method according to the invention. invention, which has just been described in connection with Figure 14. At initialization, the code instructions of the computer program Pg2 220 are for example loaded into a RAM before being executed by the processor of the computer. processing unit 210. The processor of the processing unit 210 implements the steps of the method described above, according to the instructions of the computer program 220. In this exemplary embodiment of the invention, the device 200 comprises at least one less a DEC decoding unit of the coefficients of the current block transformed from data read in the bitstream, a DEQUANT unit of dequantization of the decoded coefficients, a TRANS'-unit of transformatio. n inverse of the transformed current block, able to implement two successive subunits of inverse transformation, the first subunit TR1-1 applying to the transformed current block, the second TR2-1 to the intermediate block, resulting from the first subunit. According to the invention, at least one of the subunits TR1-1, TR2-1 implements at least a first and a second linear transform, distinct from one another, on a block said block to be treated, among the transformed current block and the intermediate block. According to the invention, the inverse transformation unit further comprises a subunit FORM-1 able to rearrange the coefficients of the vectors processed by the first and second transforms in the processed block.
[0060] Advantageously, the device also comprises an ARR-1 unit for forming at least two vectors from the coefficients of the block to be processed, said vectors having a length equal to one of the dimensions of the current block, to which the first and second ones will be applied. linear transformers and a DET unit for determining at least two different linear transforms to be applied to said vectors, at least as a function of a coding parameter of the current block.
[0061] These units are driven by the processor p.2 of the processing unit 210. Advantageously, the device 200 can be integrated with a user terminal TU. The device 200 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is received; a telecommunications network; - A DISP device for rendering images, for example a terminal screen, through which the decoded digital image or the sequence of decoded images is returned to a user. Advantageously, the user terminal TU can integrate both a coding device and a decoding device according to the invention. It goes without saying that the embodiments which have been described above have been given for purely indicative and non-limiting purposes, and that many modifications can easily be made by those skilled in the art without departing from the scope. of the invention. 15
权利要求:
Claims (17)
[0001]
REVENDICATIONS1. A method of coding a digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block, of predetermined dimensions: Transformation (T2) of the current block in a transformed block, said block comprising coefficients, said step implementing two successive transformation sub-steps, the first substep (T21) applying to the current block, the second (T24) to the intermediate block, from the first substep, said intermediate block comprising coefficients, and quantization (T4) and coding (T5) of the transformed block coefficients, characterized in that: said transforming step further comprises, before at least one of said transformation substeps, said substep applying to a block, said block to be transformed, from the current block and the intermediate block, a sub-step of alable (T20, T23) for forming at least two vectors in the block to be transformed, from pixels adjacent sequences, respectively adjacent coefficients, a said sequence having a length equal to a block of dimensions to be transformed; and said at least one transformation substep comprises applying a first transform (LO, CO) to said at least one first vector and at least one second transform (L1, Cl), distinct from the first, at least one second vector of said block.
[0002]
2. A method of encoding a digital image according to claim 1, characterized in that it further comprises a preliminary step (Tl) for determining the at least two distinct transforms to be applied to said vectors, at least as a function of a encoding parameter of the current block.
[0003]
3. A method of encoding a digital image according to one of claims 1 and 2, characterized in that the step (T2) of determination comprises reading information stored in memory, said information comprising at least the parameter of coding, 3032583 39 5
[0004]
4. 10
[0005]
5. 15 20
[0006]
6. an identifier of the first transform, at least one first vector identifier of the block or intermediate block, an identifier of at least one second transform, distinct from the first and at least one second vector identifier of said block. Method for coding a digital image according to one of the preceding claims, characterized in that said transforming step comprises a sub-step (T22, T25) of rearrangement of the coefficients of the vectors transformed in the intermediate block (XI), respectively transformed (X). A method of coding a digital image according to one of claims 1 to 4, comprising the following steps: Prediction of the values of the current block from at least one previously processed block according to a prediction mode selected from a plurality of predetermined modes, - Calculation of a residue current block by subtraction of the predicted values from the original values of the current block, characterized in that the transformation step (T2) is applied to the residual current block and in that said at least one parameter coding is the prediction mode of the current block. A method of encoding a digital image according to one of the preceding claims, characterized in that it comprises a step of encoding identification information of said at least one first transform and said at least one second transform. 25
[0007]
7. A method of coding a digital image according to one of the preceding claims, characterized in that the first transform is applied to a first subset of the vectors of dimension equal to that of a line of the block, respectively to that one column of said block and that said at least one second transform is applied to a second subset of vectors of dimension equal to that of a row of the block, respectively to that of a column of said block.
[0008]
8. Method of coding a digital image according to one of claims 1 to 6, characterized in that said at least one transformation sub-step implements a distinct transform by vector of dimension equal to that of a row of the block, respectively to that of a column, formed in the block.
[0009]
9. A device (100) for coding a digital image, said image (Ik) being divided into a plurality of blocks of pixels processed in a defined order, said device comprising the following units, which can be implemented for a current block (x), of predetermined dimensions: Transformation (TRANS) of the current block into a transformed block, said block comprising coefficients, said unit being able to implement two successive transformation subunits, the first subunit (TRI.) Applying to the current block, the second (TR2) to the intermediate block, from the first sub-unit, said intermediate block comprising coefficients, and quantization (QUANT) and coding (COD) of the transformed block coefficients Characterized in that: said transformation unit further comprises a subunit (FORM) for forming at least two vectors in a block, said block to be transformed, among the current block and the intermedia block ire, from a sequence of adjacent pixels, respectively adjacent coefficients, said sequence having a length equal to one of the dimensions of the block to be transformed; capable of being implemented before at least one of said transformation subunits (TR1, TR2); and said at least one transformation subunit includes applying a first transform to said at least one first vector and at least one second transform, distinct from the first, to said at least one second vector of said block.
[0010]
A method of decoding a digital image from a bit stream (TB) comprising coded data representative of said image, said image (Ik) being divided into a plurality of processed blocks in a defined order, said method comprising the following steps, implemented for a block, called transformed current block (X '): - Decoding (D1) of the coefficients of the current block transformed from data read in the bitstream; - Déquantification (D2) of the decoded coefficients; Inverse transformation (D5) of the transformed current block, said step implementing two successive sub-stages of inverse transformation, the first substep (D51) applying to the current block, the second (D54) to the intermediate block, from the first substep; Characterized in that: said at least one reverse transformation substep applies to a block, said block to be processed, among the transformed current block (X ') and the intermediate block (X'I), it comprises the applying a first inverse transform (C0-1, LO-1) to at least a first vector (V'cjO, V'Ii0) of length equal to that of a column, respectively of a line, of the block to be treated, and at least one second inverse transform (C1-1, L1-1), distinct from the first, to at least one second vector (V'cjl, V'lil) of said block 15 of length equal to that a column, respectively a line; and in that it further comprises a sub-step (D52, D55) for forming the treated block (X'I, x ') from sequences of adjacent coefficients, respectively adjacent pixels, of lengths equal to that of a column, respectively of a line, issuing from the treated vectors (v'cjO, v'cjl, v'110, 20
[0011]
11. Method for decoding a digital image according to claim 10, characterized in that it comprises a preliminary step (D4) for determining the at least two distinct transforms (C0-1, Cl, -1 LO-1, L1 - ') to apply to said vectors of the block to be processed, at least as a function of an encoding parameter of the current block. 25
[0012]
12. The method of decoding a digital image according to one of the preceding claims, characterized in that the inverse transformation step further comprises a substep (D50, D53), prior to said at least one substep for transforming, rearranging sequences of adjacent coefficients of the block to be processed in said first and second vectors (V'cj0, V'cj1, V'lil), a said sequence having a length equal to one of the dimensions of the block to be treated . 3032583 42
[0013]
13. A device (200) for decoding a digital image, from a bit stream (TB) comprising encoded data representative of said image, said image being divided into a plurality of processed blocks in a defined order, said device comprising the following units, suitable for being implemented for a block of predetermined dimensions, said current block: decoding (DECOD) of the coefficients of the current block transformed from data read in the bit stream; - Déquantification (DEQUANT) of the decoded coefficients; Inverse transformation (TRANS ') of the transformed current block, said unit being able to successively implement two inverse transformation subunits, the first subunit applying to the current block, the second subunit to the intermediate block, first subunit; Characterized in that at least one inverse transforming subunit of a block (X ', XI), said block to be processed, among the transformed current block and the intermediate block, comprises the application of at least a first inverse transform (CO- ', LO-1) to at least a first vector (V'cjO, V'Ii0) of coefficients of the block to be treated, of length equal to that of a column, respectively of a line, of block to be treated and at least one second inverse transform (C1-1, L1-1), distinct from the first to at least one second vector (V'cj1, 20 Vlil) of coefficients of the block to be treated, respectively pixels, of length equal to that of a column, respectively of a line, of the block to be treated; and in that the inverse transformation unit (D5) further comprises a processed block formation subunit (D52, D55) (X'I, x ') from adjacent coefficient sequences, respectively adjacent pixels , of lengths equal to that of a column, respectively a line, from the processed vectors (v'cjO, v'cj1, v'liO, On).
[0014]
14. Signal carrying a bitstream (TB) comprising coded data of a digital image, said image being divided into blocks of pixels, characterized in that it comprises, for a current block: coded data representative of an identification information of at least a first and a second transform, distinct from each other, implemented during the coding of the current block during a step (T2) transforming the current block 3032583 43 in a transformed block, comprising two successive substeps (T21, T24) transforming the current block into a transformed block, at least one transformation substep comprising applying a first transform (LO, CO) to at least one first vector (v1h0, vcw0) and at least one second transform (L1, 5 Cl), distinct from the first, at least one second vector (v1h1, vcwi) of a block, said block to be transformed, among the current block and the intermediate block (x, XI), and donations Encoded forms representative of at least the first and second vectors formed in the block to be transformed, from a sequence of adjacent pixels, respectively adjacent coefficients, said sequence having a length equal to one of the dimensions of the block to be transformed.
[0015]
15. User terminal (TU) characterized in that it comprises a device (100) for encoding a digital image according to claim 9 and a device (200) for decoding a digital image according to claim 13. 15
[0016]
16. Computer program (Pgl) comprising instructions for implementing the method of encoding a digital image according to one of claims 1 to 8, when executed by a processor. 20
[0017]
17. Computer program (Pg2) comprising instructions for implementing the method of decoding a digital image according to one of claims 10 to 12, when executed by a processor.
类似技术:
公开号 | 公开日 | 专利标题
FR2906433A1|2008-03-28|METHODS AND DEVICES FOR ENCODING AND DECODING IMAGES, COMPUTER PROGRAM USING THEM AND INFORMATION SUPPORT FOR IMPLEMENTING THEM
WO2016124867A1|2016-08-11|Method for encoding a digital image and associated decoding method, devices and computer programs
EP3183879A1|2017-06-28|Method for encoding a digital image, and associated decoding method, devices and computer programmes
WO2010149900A1|2010-12-29|Method for encoding and decoding images, encoding and decoding devices, and corresponding data stream and computer program
FR3029333A1|2016-06-03|METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
EP0490799A1|1992-06-17|Image coding apparatus and method and corresponding transmission system and receiver
EP3449631A1|2019-03-06|Method of decoding a digital image, method of coding, devices, and computer programs associated therewith
EP3075155B1|2019-02-06|Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
FR3030976A1|2016-06-24|METHOD FOR ENCODING A DIGITAL IMAGE, DECODING METHOD, DEVICES AND COMPUTER PROGRAMS
EP3345391A2|2018-07-11|Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto
FR2956789A1|2011-08-26|METHOD AND DEVICE FOR PROCESSING A VIDEO SEQUENCE
FR3057130B1|2019-08-02|METHOD OF ENCODING AN IMAGE, DECODING METHOD, DEVICES, TERMINAL EQUIPMENT AND COMPUTER PROGRAMS
EP3314897A1|2018-05-02|Method for encoding a digital image, and associated decoding method, devices and computer programs
EP3384672A1|2018-10-10|Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
EP2364552A1|2011-09-14|Device for encoding a digital image stream and corresponding decoding device with approximation of the neighbourhood of a block by the widened neighbourhood of the block
FR2975856A1|2012-11-30|IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
EP3685283A1|2020-07-29|Methods for encoding and decoding an image
FR3050858A1|2017-11-03|IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
WO2020058595A1|2020-03-26|Methods and devices for encoding and decoding a data stream representing at least one image
FR3088511A1|2020-05-15|DECODING METHOD OF AT LEAST ONE IMAGE, CORRESPONDING CODING METHOD, DEVICES, SIGNAL AND COMPUTER PROGRAMS.
WO2018065698A1|2018-04-12|Method for encoding a digital image and associated decoding method, devices, terminal equipment and computer programs
FR3064145A1|2018-09-21|METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
同族专利:
公开号 | 公开日
CN107409228A|2017-11-28|
JP2018509070A|2018-03-29|
KR20170134324A|2017-12-06|
WO2016124867A1|2016-08-11|
US20180020216A1|2018-01-18|
FR3032583B1|2018-03-02|
EP3254467A1|2017-12-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US9661338B2|2010-07-09|2017-05-23|Qualcomm Incorporated|Coding syntax elements for adaptive scans of transform coefficients for video coding|
RU2598799C2|2011-06-27|2016-09-27|Сан Пэтент Траст|Image encoding method, image decoding method, image encoder, image decoder and apparatus for encoding/decoding images|
EP2727355A1|2011-06-29|2014-05-07|Motorola Mobility LLC|Methods and system for using a scan coding pattern during intra coding|
KR102030719B1|2011-10-18|2019-10-10|주식회사 케이티|Method for encoding image, method for decoding image, image encoder, and image decoder|
KR20130050149A|2011-11-07|2013-05-15|오수미|Method for generating prediction block in inter prediction mode|FR3044507A1|2015-11-30|2017-06-02|Orange|IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS|
US11095893B2|2016-10-12|2021-08-17|Qualcomm Incorporated|Primary transform and secondary transform in video coding|
CN113055682A|2019-06-24|2021-06-29|杭州海康威视数字技术股份有限公司|Encoding and decoding method, device and equipment|
US11064194B2|2019-10-31|2021-07-13|Western Digital Technologies, Inc.|Encoding digital videos using controllers of data storage devices|
法律状态:
2016-02-22| PLFP| Fee payment|Year of fee payment: 2 |
2016-08-12| PLSC| Publication of the preliminary search report|Effective date: 20160812 |
2017-02-20| PLFP| Fee payment|Year of fee payment: 3 |
2017-07-28| CA| Change of address|Effective date: 20170627 |
2018-02-21| PLFP| Fee payment|Year of fee payment: 4 |
2019-10-25| ST| Notification of lapse|Effective date: 20191006 |
优先权:
申请号 | 申请日 | 专利标题
FR1550984|2015-02-06|
FR1550984A|FR3032583B1|2015-02-06|2015-02-06|METHOD OF ENCODING DIGITAL IMAGE, DECODING METHOD, DEVICES, AND COMPUTER PROGRAMS|FR1550984A| FR3032583B1|2015-02-06|2015-02-06|METHOD OF ENCODING DIGITAL IMAGE, DECODING METHOD, DEVICES, AND COMPUTER PROGRAMS|
CN201680016832.XA| CN107409228A|2015-02-06|2016-02-05|Method and associated coding/decoding method, equipment and computer program for encoded digital image|
PCT/FR2016/050246| WO2016124867A1|2015-02-06|2016-02-05|Method for encoding a digital image and associated decoding method, devices and computer programs|
JP2017541692A| JP2018509070A|2015-02-06|2016-02-05|Digital image coding method, decoding method, apparatus, and accompanying computer program|
EP16714466.6A| EP3254467A1|2015-02-06|2016-02-05|Method for encoding a digital image and associated decoding method, devices and computer programs|
KR1020177021825A| KR20170134324A|2015-02-06|2016-02-05|METHODS FOR ENCODING DIGITAL IMAGES AND RELATED DECODING METHODS, DEVICES, AND COMPUTER PROGRAMS|
US15/549,298| US20180020216A1|2015-02-06|2016-02-05|Method for encoding a digital image, decoding method, devices, and associated computer programmes|
[返回顶部]